루프(Loops)
✒️ 2025-05-16 13:43 내용 수정
동일한 동작을 여러 번 반복해서 진행하게 하는 것
1. for문
- 특정 횟수만큼 반복하여 실행할 때 사용한다.
- if (;;) {} 를 사용하면 무한 루프가 된다.
- 증감 연산자는 연산자(Operators)#증감 연산자 참고 ( n++와 n--는 연산 진행 후 1 증가/감소 시킨다!)
- for 문의 조건문 내의 변수는 for 문이 종료되면 자동 소멸한다.
- 조건문 외에도 변수를 선언할 때 for문에 있는지 외부에 있는지 확인하자.
- 변수를 내부에서 선언하면 내부에서만 사용할 수 있다.
- for문의 초기값과 조건식에는 int 외 char 타입도 쓸 수도 있다.
- char 형도 ASCII code 변환으로 int형으로 만들 수 있기 때문이다.
- 증감 연산자를 쓰면 ASCII code 변환으로 다음 알파벳이나 기호 등이 들어간다.
- 테일윈드's 자료형 char 자료형으로 for 반복문을 실행하면 어떻게 될까 참고
for (initialValue; condition; +/-operator;) {
// 조건식의 결과가 참인 동안 반복 실행
}
for ( int a = 0; a < 10; a++) {
// 1. 초기값 부여
// 2. 조건 확인
// 3. 명령문 실행
// 4. 증감
// 5. 2~4 반복
// 6. 조건을 만족하지 않으면 반복 종료
}
다중 for문
- for 문 내에 여러 개의 for 문이 포함되어 있다.
for ( int a = 0; a < 10; a++) {
// 만약 a = 0 일 때
for ( int b = 0; b < 10; b++) {
// a = 0인 조건에서 b = 0 ~ b = 9 까지 총 10번 반복된다
}
}
// a 조건으로 반복되는 횟수 : 10번
// b 조건으로 반복되는 횟수 : 10번
// a와 b 조건 하에 실행되는 횟수는 10*10 = 100번이다
2. 향상된 for문 (for-each문)
- 배열과 컬렉션의 모든 요소를 참조하기 위한 반복문
- loop를 돌릴 수 있는 자료형을 iterator로 읽어 1개씩 순차적으로 for문을 돌릴 때 사용한다.
- 배열의 요소를 참고할 때 좋지만, 요소를 변경할 때 사용하기 어렵다.
- for문을 실행할 반복 대상이 있으면 변수는 반복 대상이 지닌 자료형과 똑같은 타입으로 지정해야 한다.
- 다차원 배열이라면 처음 반복 대상의 자료형은 배열이다.
- 반복 대상의 요소를 하나씩 꺼내서 변수에 대입하면서 진행하고, 반복 대상의 길이만큼 반복한다.
- loop를 돌릴 대상의 자료형은 배열, String, char, ArrayList 등이 가능하다.
- 일반 for문보다 가독성이 좋고, 배열 인덱스 문제를 피할 수 있다.
- 참고 자료 : .java의 개발일기's Java 향상된, 개선된 for문 개념, 문법 총 정리
- 다만 인덱스를 사용하지 못하기 때문에 loop의 시작 위치를 지정하기 어렵다.
for (type 변수이름 : 배열or컬렉션) {
// 실행문
}
for (String str : strArray) {
System.out.println(str); // strArray 안에 있는 String 타입 요소들을 출력
}
for (Charactor ch : string1) {
System.out.println(ch); // string1 에 있는 문자 하나씩 출력
}
3. while
- 특정 조건을 만족할 때까지 반복 실행할 때 사용한다.
- 실행문 마지막에 조건의 결과를 변경할 명령문을 반드시 추가해야 한다.(무한루프 방지)
- while (true) {} 로 작성한다면 무한 루프로 돈다.
while (condition) {
// 조건의 결과가 true일 때까지 반복적으로 실행
// 조건의 결과를 변경하는 명령문 필요
}
4. do-while
- 명령문을 먼저 1회 실행한 후 조건을 확인한다.
- 조건에 상관없이 무조건 1회 실행해야 하는 명령이 있을 때 사용
do {
//실행할 명령문
} while (condition);